In a typical data center, data communication equipment consists of two different types of networks. These include a Fibre Channel storage area network (SAN) and an Ethernet-based local area network (LAN). The Fibre Channel network employs SCSI protocol and is used for communications between host computer systems and storage devices, such as for the hosts to issue read and write requests to the storage devices and for storage devices to return responses to the requests. The Ethernet LAN employs Ethernet protocol and allows the hosts to communicate with each other within the data center and to communicate externally via one or more Internet protocol (IP) routers connected to the Ethernet LAN.
Because of its complexity, Fibre Channel networks have remained relatively expensive to implement. In contrast, the cost of implementing an Ethernet network has fallen, while performance of Ethernet networks has increased.
Recently, Internet SCSI (iSCSI) has been developed for storage area networks. The iSCSI protocol maps SCSI requests and responses to a group of Transmission Control Protocol/Internet Protocol (TCP/IP) connections or a session to function as a storage service delivery system. Thus, in accordance with iSCSI, packet data units (PDUs) are encapsulated in TCP/IP protocol packets. TCP/IP packets are then communicated via Ethernet or other data networks as the underlying communication medium. The PDUs carry command information (to instruct a storage device to read or write data) and data (the data read from or written to a storage device).
Unfortunately, the iSCSI protocol has a number of drawbacks. For example, errors are often introduced by hardware and software employed by conventional IP routers. The limited checksum error detection scheme of TCP, while sufficient for world wide web (WWW) and email type of end-to-end communications, it is not generally sufficient for storage system applications. Thus, a data digest is added to each PDU for further error checking using a cyclic redundancy check (CRC). This increases the complexity and cost to implement iSCSI.
In addition, at the sending end, TCP segmentation for iSCSI PDUs does not preserve their packet's boundaries. PDUs that are too long to fit into a single TCP packet are divided into smaller segments before being encapsulated into TCP packets, and because of this asynchronous segmentation, some of the TCP packets may contain a tail end of one iSCSI PDU and head end of another. At the receiving end, TCP packets may be received out of order, and some of them may have errors that require retransmission. Since all the identification and control information of a iSCSI PDU is in the header, these TCP segments must be stored in a temporary buffer until the entire iSCSI data is received and checked before it can be copied to the allocated SCSI buffer. Thus, each data packet requires two copy operations, one copy to the TCP temporary buffer, and one from TCP temporary buffer to the SCSI buffer.
Furthermore, to provide sufficient throughout, multiple TCP/IP connection sessions may be required, which adds to the traffic management and error recovery complexity. In addition, because iSCSI is IP based, any device on the Internet may access and alter the data on the iSCSI device. To prevent this, a sophisticated security scheme such IPsec must be incorporated, which not only increases the complexity but also impedes performance.
Therefore, what is needed is a communication technique for storage systems that minimizes or eliminates the aforementioned drawbacks. It is toward these ends that the present invention is directed.